var userName;
var password;
var sex;
var birthday;
var email;
var result=0;
$(document).ready(function(){


// 字符验证       
jQuery.validator.addMethod("stringCheck", function(value, element) {       
    return this.optional(element) || /^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/.test(value);       
}, "由5-20位字母、数字或下划线组合，首字符必须为字母。");  

///^(\w|[\x21-\x7E]){6,}$/
	//开始验证   
    $("#userInforForm").validate({
		submitHandler: function(form) {    
	        form.submit();    
	   		 },
        /*** 设置验证规则 */
		rules:{
			userName:{
				required:true,
				minlength : 5,
				maxlength : 20,
				stringCheck:true,
				//remote : "user_action!checkUserNameExists"
			},
			password:{
				required:true,
				minlength : 6,
				maxlength : 16
			},
			confirmPassword:{
				required:true,
				//equalTo: '[name=password]'
				equalTo:"[name=password]",
				
				
			},
			date:{
				required:true,
				date:true,
			},
			email:{
				required:true,   
           		 email:true,
				
			}
			
		},
		/**
         * 设置错误信息
         */
        messages: {
            userName: {
                required: "用户名不能为空",
				stringCheck:"由字母、数字或下划线组合，首字符必须为字母。",
				minlength : jQuery.format("用户名的长度至少为 {0} 个字符"),
				maxlength : jQuery.format("用户名的长度至少为 {0} 个字符"),
				//remote : jQuery.format("{0} 该用户名已被使用")
            },
            password: {
                required: "密码不能为空",
            	minlength : jQuery.format("密码长度不能少于  {0}"),
				maxlength : jQuery.format("密码长度不能大于 {0}")
            },
			confirmPassword:{
				required:"确认密码不能为空",
				equalTo: "两次密码必须一致"
				
			},
			date:{
				required:"不能为空",
				date:"日期格式不正确",
			},
			email:{
				required:"请输入一个Email地址",   
           		 email: "请输入正确格式的电子邮件",
				
			}
        
        },
        
        /**设置验证触发事件 */
        focusInvalid: true,
        onkeyup: true,
        
        /** 设置错误信息提示DOM */
        errorPlacement: function(error, element){
            error.appendTo(element.parent());
        },
    
	});
	$("#dialog").dialog(
		{
			autoOpen:false,
			modal: true, // 设置对话框为模式
			width: 500,
			buttons: {
				"添加": function() {
					if($("#userInforForm").valid()){//检查验证是否成功
						checkUserExists();//检查用户是否存在
						if(result==1){
							addUser();//添加用户
						}else{
							return;
						}
					
					}else{
						return;
					}
					
				},
				"修改":function(){
					if ($("#userInforForm").valid()) {//检查验证是否成功
						updateUser();
					}
				},
				"取消": function() {
					$(this).dialog('close');
	      		}
   		 	}
		}
	);
   $("#addUser").click(function(){
   	    $("#userName").attr("disabled",false);//让文本框能够编辑
		$("#userName").css("background","#ffffff");//让文本框颜色变白
		emptyForm();//清空表单数据
   		var operatorDilog=$("#dialog");
		var dialogButtonPanel = operatorDilog.siblings(".ui-dialog-buttonpane");
		dialogButtonPanel.find("button:not(:contains('取消'))").hide();
		dialogButtonPanel.find("button:contains('添加')").show();
		operatorDilog.dialog("option", "title", "添加用户").dialog("open");
		
	});
	  $("#updateUser").click(function(){
	  	var selectedId= $("#gridTable").jqGrid("getGridParam", "selrow");
		if(selectedId){
			var rowData = $("#gridTable").jqGrid("getRowData", selectedId);//行数据
			$("#userName").val(rowData.userName);
			$("#userName").attr("disabled",true);//让文本框不能够编辑	
			$("#userName").css("background","#f0f0f0");
			$("#password").val(rowData.password);
			$("#date").val(rowData.birthday);
			//$(":radio[name='sex']").val(["女"]); 
			$(":radio[name='sex']").val([rowData.sex]);//给单选框赋值 
			$("#email").val(rowData.email);
			$("#userId").val(rowData.userId);
			
		}else{
			alert("请选择要修改的行");
			return false;
		}
   		var operatorDilog=$("#dialog");
		var dialogButtonPanel = operatorDilog.siblings(".ui-dialog-buttonpane");
		dialogButtonPanel.find("button:not(:contains('取消'))").hide();
		dialogButtonPanel.find("button:contains('修改')").show();
		operatorDilog.dialog("option", "title", "修改用户").dialog("open");
		
	});
	$("#deleteUser").click(function(){
		var selectedId= $("#gridTable").jqGrid("getGridParam", "selrow");
		if(selectedId) {
			deleteUser();
		}else{
			alert("请选择要删除的行");
			return false;
		}
	});
	$("#validBirthday").datepicker();
	$("#date").datepicker();
	
	 
	/* 设置默认属性 */
	$.validator.setDefaults({
        submitHandler: function(form){
			form.submit();
		}
		
	});
	
	
	
		
	
	
    loadJQgrid();
    deleteUser();
	  
	
    
});




function loadJQgrid(){
	var lastSel;
    $("#gridTable").jqGrid({
        url: 'admin/user!loadUserList',
        datatype: "json",
        height: 300,
        colNames: ['编号', '用户名', '密码', '性别', '出生日期', 'E-mail', '注册时间'],
        colModel: [{
            name: 'userId',
            index: 'userId',
            width: 50,
            sorttype: "int",
            editable: true
        }, {
            name: 'userName',
            index: 'userName',
			width: 160,
            editable: true
        }, {
            name: 'password',
            index: 'password',
			width: 240,
        }, {
            name: 'sex',
            index: 'sex',
            width: 40,
        }, {
            name: 'birthday',
            index: 'birthday',
            width: 120,
			formatter:'date',
			editrules:{date:true},
			search:false,
			editable:false,
			formatoptions:{srcformat:'Y-m-d H:i:s',newformat:'Y-m-d H:i:s'},
			datefmt:'Y-m-d H:i:s',
            editable: true
        }, {
            name: 'email',
            index: 'email',
			width:230,
        }, {
            name: 'registerTime',
            index: 'registerTime',
            width: 120,
        },
		 ],
        sortname: 'userId',
        sortorder: 'desc',
        viewrecords: true,
        rowNum: 10,
        rowList: [10, 20, 30],
        jsonReader: {
            root: "users", // 数据行（默认为：rows）   
            page: "page", // 当前页   
            total: "totalPage", // 总页数   
            records: "totalCount", // 总记录数   
            repeatitems: false // 设置成false，在后台设置值的时候，可以乱序。且并非每个值都得设   
        },
		prmNames : {
			search : "search"
		},
        gridComplete: function(){
        },
        onSelectRow: function(userId){
        },
        pager: "#gridPager",
        emptyrecords: "Nothing to display",
        multiselect: true,
        caption: "用户列表"
    });
    
    jQuery("#gridTable").jqGrid('navGrid', '#gridPager', {
        edit: true,
        add: true,
        del: false,
		search:true,
		position:"left"
    });
}
/***
 * 查询用户
 */
 function queryUser(){
	var sdata = {   //构建查询需要的参数  
        userName: $("#searchUser").val()    
    };    
    //获得当前postData选项的值  
    var postData = $("#gridTable").jqGrid("getGridParam", "postData");  
      
    //将查询参数融入postData选项对象  
    $.extend(postData, sdata);  
      
    $("#gridTable").jqGrid("setGridParam", {  
        search: true,mtype : "post"    // 将jqGrid的search选项设为true  
    }).trigger("reloadGrid", [{page:1}]);   //重新载入Grid表格，以使上述设置生效   
}

/**************************获得用户信息*********************************************/
function getUserInfor(){
	userName=$("#userName").val();
	password=$("#password").val();
	birthday=$("#date").val();
	email=$("#email").val();
	sex=$("input[type='radio']:checked").val();
}
function addUser(){
	$("#showUserName").html("");//清空消息
	getUserInfor();
	var params={"user.userName":userName,"user.password":password,"user.sex":sex,"user.birthday":birthday,"user.email":email,"user.isAdmin":0};
					 $.ajax({
                		type: "post",
               			url: 'admin/user!addUser',
                		data: params,
                		dataType: "json",
						cache : false,
                		success: function(data){
                  		     if (data== 0) {
                       				alert("添加失败");
                   			 }else{
							 	//清空表单数据
								emptyForm();
							 	alert("添加成功");
								$("#dialog").dialog('close');//关闭模式窗口
								$("#gridTable").jqGrid('setGridParam',{url:"admin/user!loadUserList"}).trigger("reloadGrid");//更新用户列表
							 }
                            return true;
                		},
               				 error: function(data){
							 	alert("error");
                    			return false;
               			 }
                
            			});
}

/*************************修改用户***********************************/
function updateUser(){
	getUserInfor();//获取表单值
	var params={"user.userId":$("#userId").val(),"user.userName":userName,"user.password":password,"user.sex":$("input[name='sex'][checked]").val(),"user.birthday":birthday,"user.email":email,"user.isAdmin":0};//要修改的用户ID
	 $.ajax({
                		type: "post",
               			url: 'admin/user!updateUser',
                		data: params,
                		dataType: "json",
						cache : false,
                		success: function(data){
                  		     if (data== 0) {
                       				alert("修改失败");
                   			 }else{
							 	//清空表单数据
								emptyForm();
								$("#gridTable").jqGrid('setGridParam',{url:"admin/user!loadUserList"}).trigger("reloadGrid");//更新用户列表
								$("#dialog").dialog('close');//关闭模式窗口
								alert("修改成功");
							 }
                            return true;
                		},
               				 error: function(data){
							 	alert("error");
                    			return false;
               			 }
                
            			});
}



function deleteUser(){
	var ids = new Array();　//创建一个数组
    var selectedIds = $("#gridTable").jqGrid("getGridParam", "selarrrow");
	
    if (selectedIds) {
		for(var i=0;i<selectedIds.length;i++)
		{
			var id=jQuery('#gridTable').jqGrid('getCell',selectedIds[i],'userId');
			ids.push(id);
		}
			ids=ids.toString();
			var params={"ids":ids};
			 $.ajax({
            type: "post",
            url: "admin/user!deleteUser",
            data:params,
            dataType: "json",
            success: function(data){
			  $("#gridTable").jqGrid('setGridParam',{url:"admin/user!loadUserList"}).trigger("reloadGrid");
               if (data == 1) {
                    alert("删除成功！");
               }
               else {
                   alert("删除失败！");
               }
                return true;
            },
            error: function(data){
				$("#gridTable").jqGrid('setGridParam',{url:"admin/user!loadUserList"}).trigger("reloadGrid");
                return false;
            }
        });
		/****
		 /var selectedId= $("#gridTable").jqGrid("getGridParam", "selrow");
        var rowData = $("#gridTable").jqGrid("getRowData", selectedId);
        alert("确定要删除第" + selectedId + "行？");
        alert(rowData.userId);**/
       
    }
    else {
        alert("请选择要删除的行");
    }
    
}

//检查用户名是否存在
function checkUserExists(){
	if(($("#userName").val().length == 0) || ($("#userName").val()== "")){
		result=0;
		return false;
	}
	$("#showUserName").html("");
    var params = {
        "user.userName": $("#userName").val()
    }//json对象
    $.ajax({
        type: "post",
        url: "front/user!checkUserIsExist",
        data :params,
		dataType: "json",
		async:true,
        success: function(json){
            if (json == 1) {//用户存在
               $("#showUserName").html("<img src='img/pic_02.gif'/><font border='1'>用户名已经被占用！</font>");
               	result=0;
			    return false;
            }else{
				result=1;
            	return true;
			}
			
            
        },
        error: function(json){
			result=0;
            return false;
        }
        
    });  
    
};

/*******************清空表单**********************************/
function emptyForm(){
	$("#userName").val("");
	$("#password").val("");
	$("#confirmPassword").val("");
	$("#date").val("");
	$("#email").val("");
}
